<?php
class ProductosController extends AppController
{
	var $name = 'Productos';
	var $uses = array('Bitacora','Usuario','Producto','Tipo_producto','Organizacion','Division','Almacen','Mensaje','Permisologia');
	var $helpers = array('Html','Form','Ajax','Javascript','Cargar');
	var $layout =  "ajax";
   

           /*
      function listado_agencias() {

      //echo $this->consulta(1, 'Usuario', 'nombre');
      // $this->productos();


      $Agencias = $this->Agencia->find('all', array('conditions' => array('Agencia.estado' => 1), 'order' => 'Agencia.id'));

      $this->set('data', $Agencias);
      echo"<script type=\"text/javascript\" language=\"javascript\">
      document.getElementById('listado').style.display='none';
      document.getElementById('vista').style.display='block';
      </script>";
      }
     */

///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
 
        

	function tipo_producto($id=null)
	{
		$tipo_producto = $this->Tipo_producto->find('list',array('fields'=> array('Tipo_producto.id','Tipo_producto.nombre'),'conditions'=>array('Tipo_producto.estado'=>1), 'order'=>'Tipo_producto.nombre'));
			return $tipo_producto;
	}

        function division_input($ban=null, $id=null)
	{
		if($id==null)
		{
		 $division = $this->Division->find('list',array('fields'=> array('Division.id','Division.nombre'),'conditions'=>array('Division.estado'=>1), 'order'=>'Division.nombre'));
		}
		else
		{
		 $division = $this->Division->find('list',array('fields'=> array('Division.id','Division.nombre'),'conditions'=>array('Division.estado'=>1,'Division.organizacion_id'=>$id), 'order'=>'Division.nombre'));
		}
		if($ban==1)
			$this->set('division',$division);
			return $division;
	}
	function almacen_input($ban=null, $id=null)
	{
		if($id==null)
		{
		 $almacen = $this->Almacen->find('list',array('fields'=> array('Almacen.id','Almacen.nombre'),'conditions'=>array('Almacen.estado'=>1), 'order'=>'Almacen.nombre'));
		}
		else
		{
		 $almacen = $this->Almacen->find('list',array('fields'=> array('Almacen.id','Almacen.nombre'),'conditions'=>array('Almacen.estado'=>1,'Almacen.division_id'=>$id), 'order'=>'Almacen.nombre'));
		}
		if($ban==1)
			$this->set('almacen',$almacen);
			return $almacen;
	}






	
	function estados($pais=null)
	{
		if($pais==null)
			$this->set('estado',null);	
		else
		{
			$estado = $this->Estado->find('list',array('fields'=> array('Estado.id','Estado.nombre'),'conditions'=>array('Estado.pais_id'=>$pais,'Estado.estado'=>1), 'order'=>'Estado.nombre'));
			$this->set('estado',$estado);
		}
	}




///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
	function productos()
	{

		if($this->pelfil($this->Session->read('usuario_id')) == 1)  // GERENTE GENERAL
		{
                $Producto = $this->Producto->find('all',array('conditions'=>array('Producto.estado'=>array(1,0)), 'order'=>'Producto.id'));
		}

		else if($this->pelfil($this->Session->read('usuario_id')) == 2) // GERENTE DE LA ORGANIZACION
		{
		
		$Producto = $this->Producto->find('all',array('conditions'=>array('Producto.organizacion_id'=>$this->Session->read('organizacion')), 'order'=>'Producto.id'));
		}
		else if($this->pelfil($this->Session->read('usuario_id')) == 3) // DIVISION
		{
		
		$Producto = $this->Producto->find('all',array('conditions'=>array('Producto.estado'=>1,'Producto.division_id'=>$this->consulta($this->Session->read('usuario_id'), 'Usuario', 'division_id')), 'order'=>'Producto.id'));
		}
		else if($this->pelfil($this->Session->read('usuario_id')) == 4) // ALMACEN
		{
		
		$Producto = $this->Producto->find('all',array('conditions'=>array('Producto.estado'=>1,'Producto.division_id'=>$this->consulta($this->Session->read('usuario_id'), 'Usuario', 'almacen_id')), 'order'=>'Producto.id'));
		}

		else
		{
			$Producto=null;
		}
		return $Producto;
	
	}

  function listado()
	{
		$data=$this->productos();
		$this->set('data',$data);
		$this->script($this->div('v'),$this->div('l'));//(1,0)
 	}
	function modificar($id=null)
	{
   		$data = $this->Producto->find('first',array('conditions'=>array('Producto.id'=>$id)));
		$this->set('data',$data);
		$this->set('tipo_producto',$this->tipo_producto());
    		$this->set('organizacion',$this->organizacion());
     		$this->set('division',$this->division_input(0,null));
		$this->set('almacen',$this->almacen_input(0,null));
		$this->lista();
		$this->script($this->div('l'),$this->div('v'));//(1,0)
	}
	function nuevo()
	{
		$this->set('tipo_producto',$this->tipo_producto());
     		$this->set('organizacion',$this->organizacion());
    		$this->set('division',$this->division_input(0,null));
		$this->set('almacen',$this->almacen_input(0,1));
		$this->script($this->div('l'),$this->div('v'));//(1,0)
	}



	function activar($id)
	{
		$valor=$this->consulta($id, 'Producto', 'estado');
	  	$this->actualizar_estado($id, 'Producto', $valor);
		$data=$this->all('Producto', null);
		$this->set('data',$data);
		$this->listado();
		$this->render('listado');
	}

	function guardar()
	{
		$d=$this->data;
		$cont='Productos';	
		$funt='guardar';
		if(empty($d['codigo'])) 
			$this->mensaje_error($cont,$funt,'codigo');
		else if(empty($d['nombre']))
     			$this->mensaje_error($cont,$funt,'nombre');
		else if(empty($d['tipo']))
      			$this->mensaje_error($cont,$funt,'tipo');
		else if(empty($d['organizacion']))
      			$this->mensaje_error($cont,$funt,'organizacion');
		else if(empty($d['division']))
      			$this->mensaje_error($cont,$funt,'division');
		else if(empty($d['almacen']))
      			$this->mensaje_error($cont,$funt,'almacen');
		else
		{
			if(!isset($d['id']))
			{
			$vn=0;
			$vald="Nuevo";
			$med='Nuevo Producto Registrado exitosamente!!!';
			}
			else
			{
				$vn=1;
				$vald="Modificar";
				$med='Producto Modificado exitosamente!!!';
			}
			$this->data=null;
			$this->Producto->query('BEGIN  WORK');
			if(isset($d['id']))
			$this->data['Producto']['id']=$d['id'];
			$this->data['Producto']['codigo']=$this->mayuscula($d['codigo']);
			$this->data['Producto']['nombre']=$this->mayuscula($d['nombre']);
			$this->data['Producto']['tipo_producto_id']=$d['tipo'];
			$this->data['Producto']['organizacion_id']=$d['organizacion'];
			$this->data['Producto']['division_id']=$d['division'];
			$this->data['Producto']['almacen_id']=$d['almacen'];
			$this->data['Producto']['estado']=1;
	 		if ($this->Producto->save($this->data))
	 		{
				$id_producto=$this->Producto->id;
				$this->data['Bitacora']['usuario_id']=$this->Session->read('usuario_id');
				$this->data['Bitacora']['fecha']=$this->f_actual();
				$this->data['Bitacora']['hora']=date('h:i:s:a');
				$this->data['Bitacora']['accion']=$vald;
				$this->data['Bitacora']['modelo']='Producto';
				$this->data['Bitacora']['accion_id']= $id_producto;
				if($this->Bitacora->save($this->data))
				{	
					$this->Producto->query('COMMIT');
					$this->set('Exito',$med);
				}
				else
				{
					$this->Producto->query('ROLLBACK');
					$this->set('Error','Error Guardando bitacora');
				}
			}
			else
			{
				$this->Producto->query('ROLLBACK');
				$this->set('Error','Datos del Producto no fueron guardados');
	   		}
			$this->script($this->div('v'),$this->div('l'));//(1,0)
	  		$this->productos();
		 	$this->listado();
			$this->render('listado');
		}

	}




















}
